home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Spanish Scene 1
/
SpanishScene1.iso
/
spanish pack n°1 by llfb
/
--llfb--
/
programas
/
sources1.dms
/
sources1.adf
/
SOURCES
/
Scroll
/
SinusScroll.ASM
next >
Wrap
Assembly Source File
|
1996-06-04
|
13KB
|
355 lines
; ##################################################################
; ## ##
; ## SINUS-SCROLLER DEMO-SOURCE BY SNOOPY OF LEVEL FOUR ##
; ## ##
; ## ONLY ASSEMBLE AND START WITH `J`, THE FONT IS IMPLEMENTED ##
; ## ##
; ## THIS IS A PRODUCTION FOR D.I.S.C. ##
; ## ##
; ##################################################################
; org $60000
; load $60000
Section Roman,code_c
a:
move.l #Fun,$80.w ;Everything into trap
trap #0
clr.l d0
rts
Fun: MOVE.L #Plane3-46,D0 ;Write Address of BitPlane
MOVE.W D0,PL1LO ;into copper to show.
SWAP D0
MOVE.W D0,PL1HI
MOVE.L #Text,TextyPointer ;Set TextPointer
MOVE.L #SinS,SinePointer ;Set SinePointer
move.l #Copper,$dff080 ;Init Copper
clr.w $dff088
move.l $6c,oldirq ; Init Interrupt
move.l #vbi,$6c
move.w #$8010,$dff09a
move.w #$0020,$dff096 ;Sprites off
wait: btst #6,$bfe001
bne.s wait
move.w #$8020,$dff096 ;Sprites on
move.l $4,a6
move.l #gfxname,a1
clr.l d0
jsr -552(a6)
move.l d0,a0
move.l 38(a0),$dff080 ;Restore Copper
clr.w $dff088
move.w #$10,$dff09a
move.l OldIRQ,$6c ;Restore Interrupt
rte ;Back from trap
vbi: move.w $dff01e,d0 ;My Interrupt ?
btst #4,d0
bne.s copirq
move.l oldirq,a0
jmp (a0)
copirq: move.w #$0010,$dff09c
bsr.L scrolly ; Scroll the normal scroller
bsr.L sineclr ; Clear Sinus-Plane
bsr.l waitblit ; Wait for Clearblit
bsr.L sine ; Sine the Scroller
move.w #$222,$dff180 ; Used Rastertime is black !
rte
sineclr:bsr.L WaitBlit
MOVE.L #Plane3,$DFF054 ; Dest.
MOVE.W #%0000100100000000,$DFF040 ; Miniterm
CLR.W $DFF066 ; Modulo Dest.
CLR.W $DFF064 ; Modulo Source A
MOVE.W #4248,$DFF058 ; Size
rts2: rts
sine: MOVE.W #%0000110111111100,$DFF040 ; Miniterm: OR
MOVE.W #46,$DFF066 ; Modulo Dest.
MOVE.W #46,$DFF062 ; Modulo Source B
MOVE.W #46,$DFF064 ; Modulo Source A
lea Plane1+48,a0 ; From Plane
lea Plane3+48,a1 ; To Plane
move.l SinePointer,a2 ; SineTabPointer
move.b #24,d0
OutL: moveq #3,d1
move.b #8,d2 ; This routine is
InL: move.l a1,a3 ; documented in
cmpi.l #$ffff,(a2) ; D.I.S.C
bne.s nowblit
lea SinS,a2
nowblit:add.l (a2)+,a3
bSR.L WaitBlit
MOVE.L a0,$DFF050
MOVE.L a3,$DFF054
MOVE.L a3,$DFF04C
MOVE.W d1,$DFF044
MOVE.W d1,$DFF046
MOVE.W #1025,$DFF058
LSL.W #2,d1
subq.b #1,d2
BNE.S InL
SUBQ.L #2,A0
SUBQ.L #2,A1
SUBQ.B #1,d0
BNE.S OutL
ADDQ.L #4,SinePointer
MOVE.L SinePointer,a0
cmpi.l #$ffff,(a0)
bne.S rts1
lea SinS,a0
move.l a0,SinePointer
rts1: RTS
Scrolly:bSR.L WaitBlit
MOVE.L #Plane1,$DFF050
MOVE.L #Plane1-2,$DFF054
MOVE.W #%1111100111110000,$DFF040
clr.W $DFF042
MOVE.W #$FFFF,$DFF044 ; Scroll one Pixel
MOVE.W #$FFFF,$DFF046 ; left !
clr.W $DFF066
clr.W $DFF064
MOVE.W #920,$DFF058
ADDQ.L #1,PrintyZaehler
CMPI.L #16,PrintyZaehler
BLO.s NochNicht2
CLR.L PrintyZaehler
bSR.s Printy
NochNicht2:
RTS
Printy: CLR.L CharyZaehler
MOVE.L #FontTabel2,A1 ; Try to find the address of the
find2: MOVE.B (A1)+,D0 ; ASCII standing in scrolltext !
MOVE.L TextyPointer,A2
CMP.B (A2),D0
BEQ.S gefunden2
ADDQ.L #1,CharyZaehler
bra.s find2
gefunden2:
MOVE.L CharyZaehler,D0
CLR.L CharyZaehler
LSL.L #1,D0
MOVE.L #CharyPointers,A0
ADD.L D0,A0
CLR.L D0
MOVE.W (A0),D0
bSR.L WaitBlit
MOVE.L #MegaPL1,A1
ADD.L D0,A1
MOVE.L A1,$DFF050 ; Now copy into
MOVE.L #Plane1+48,$DFF054 ; scrolline !!!
MOVE.W #%0000100111110000,$DFF040
MOVE.W #$ffff,$DFF044
MOVE.W #$ffff,$DFF046
MOVE.W #46,$DFF066
MOVE.W #38,$DFF064
MOVE.W #897,$DFF058
ADDQ.L #1,TextyPointer
MOVE.L TextyPointer,A0
MOVE.B (A0),D0
CMPi.B #$FF,D0 ; Textend ???
BEQ.s EndOfText
RTS
EndOfText:
MOVE.L #Text,TextyPointer
RTS
Waitblit:
BTST #14,$DFF002
BNE.s Waitblit
RTS
copper:
dc.w $0100,$0200
DC.W $008E,$296b
DC.W $0090,$29c1
DC.W $0092,$0028
DC.W $0094,$00d0
DC.W $0108,$0004
DC.W $010A,$0004
dc.w $0182,$0fff
DC.W $00E0
PL1HI: DC.W $0000,$00E2
PL1LO: DC.W $0000
DC.W $b001,$fffe,$0100,$1000
DC.W $ff01,$fffe,$009C,$8010,$0180,$0000
DC.W $FFFF,$FFFE
Text:
DC.B "** ROMAN SOFT / LLFB ** IS SMASHING THE KEYBOARD !!! GREETINGS"
DC.B " TO ALL MY FRIENDS, ESPECIALLY TO DRAREG OF OZONE. BYE !!!!"
DC.B " ",$FF
even
FontTabel2: DC.B "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-./!^$%"
DC.B "&:;`()=*+?,ß "
CharyPointers: DC.W 0000,0002,0004,0006,0008
DC.W 0010,0012,0014,0016,0018
DC.W 0020,0022,0024,0026,0028
DC.W 0030,0032,0034,0036,0038
DC.W 0600,0602,0604,0606,0608
DC.W 0610,0612,0614,0616,0618
DC.W 0620,0622,0624,0626,0628
DC.W 0630,0632,0634,0636,0638
DC.W 1200,1202,1204,1206,1208
DC.W 1210,1212,1214,1216,1218
DC.W 1220,1222,1224,1226,1228
DC.W 1230,1232,1234,1236,1238
SinS: ;SinusTab
DC.L 1248, 1248, 1248, 1248, 1296, 1296, 1296
DC.L 1344, 1344, 1392, 1440, 1488
DC.L 1488, 1536, 1584, 1632, 1632, 1680, 1728, 1776, 1776, 1824
DC.L 1872, 1872, 1920, 1920, 1968, 2016, 2016, 2064, 2064, 2112
DC.L 2112, 2160, 2160, 2208, 2208, 2208, 2256, 2256, 2256, 2304
DC.L 2304, 2304, 2352, 2352, 2352, 2352, 2352, 2352, 2352, 2352
DC.L 2352, 2400, 2352, 2352, 2352, 2352, 2352, 2352, 2352, 2352
DC.L 2352, 2304, 2304, 2304, 2256, 2256, 2256, 2208, 2208, 2208
DC.L 2160, 2160, 2112, 2112, 2064, 2064, 2016, 2016, 1968, 1920
DC.L 1920, 1872, 1872, 1824, 1776, 1776, 1728, 1680, 1632, 1632
DC.L 1584, 1536, 1488, 1488, 1440, 1392, 1344, 1344, 1296, 1248
DC.L 1200, 1152, 1152, 1104, 1056, 1008, 1008, 960, 912, 864
DC.L 864, 816, 768, 720, 720, 672, 624, 576, 576, 528
DC.L 480, 480, 432, 432, 384, 336, 336, 288, 288, 240
DC.L 240, 192, 192, 144, 144, 144, 96, 96, 96, 48
DC.L 48, 48, 0, 0, 0, 0, 0, 0, 0, 0
DC.L 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DC.L 0, 48, 48, 48, 96, 96, 96, 144, 144, 144
DC.L 192, 192, 240, 240, 288, 288, 336
DC.L 336, 384, 432, 480, 528, 528, 576, 624, 624
DC.L 672, 672, 672, 672, 672, 672, 672, 672, 624, 624
DC.L 576, 528, 528, 480, 432, 384, 336, 288, 240, 192
DC.L 144, 144, 96, 48, 48, 0, 0, 0, 0, 0
DC.L 0, 0, 0, 48, 48, 96, 144, 144, 192, 240
DC.L 288, 336, 384, 432
DC.L 432, 480, 480, 528, 576, 576, 624, 672, 720, 720
DC.L 768, 816, 864, 864, 912, 960, 1008, 1008, 1056, 1104
DC.L 1152, 1200, 1200, 1248, 1296
DC.L 1344, 1344, 1392, 1440, 1488
DC.L 1488, 1536, 1584, 1632, 1632, 1680, 1728, 1776, 1776, 1824
DC.L 1872, 1872, 1920, 1920, 1968, 2016, 2016, 2064, 2064, 2112
DC.L 2112, 2160, 2160, 2208, 2208, 2208, 2256, 2256, 2256, 2304
DC.L 2304, 2304, 2352, 2352, 2352, 2352, 2352, 2352, 2352, 2352
DC.L 2352, 2400, 2352, 2352, 2352, 2352, 2352, 2352, 2352, 2352
DC.L 2352, 2304, 2304, 2304, 2256, 2256, 2256, 2208, 2208, 2208
DC.L 2160, 2160, 2112, 2112, 2064, 2064, 2016, 2016, 1968, 1920
DC.L 1920, 1872, 1872, 1824, 1776, 1776, 1728, 1680, 1632, 1632
DC.L 1584, 1536, 1488, 1488, 1440, 1392, 1344, 1344, 1296, 1248
DC.L 1200, 1152, 1152, 1104, 1056, 1008, 1008, 960, 912, 864
DC.L 864, 816, 768, 720, 720, 672, 624, 576, 576, 528
DC.L 480, 480, 432, 432, 384, 336, 336, 288, 288, 240
DC.L 240, 192, 192, 144, 144, 144, 96, 96, 96, 48
DC.L 48, 48, 0, 0, 0, 0, 0, 0, 0, 0
DC.L 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DC.L 0, 48, 48, 48, 96, 96, 96, 144, 144, 144
DC.L 192, 192, 240, 240, 288, 288, 336, 336, 384, 432
DC.L 432, 480, 480, 528, 576, 576, 624, 672, 720, 720
DC.L 768, 816, 864, 864, 912, 960, 1008, 1008, 1056, 1056
DC.L 1104,1104,1104,1152,1152,1152
DC.L 1152, 1152, 1200, 1200, 1200
DC.L $ffff
gfxname: DC.b "graphics.library",0
even
SinePointer: DC.l 00
OldIRQ: DC.L 0
TextyPointer: DC.L 0
PrintyZaehler: DC.L 0
CharyZaehler: DC.L 0
MegaPL1:
DC.L $1FE0FFE0,$1FE0FFE0,$1FFC1FFC,$1FE0F03C,$7FF8003C,$F03CF000
DC.L $F87CFFE0,$1FE0FFE0,$1FE0FFE0,$1FFC7FF8,$7FF8FFF8,$7FF8FFF8
DC.L $7FFC7FFC,$7FF8F03C,$7FF8003C,$F07CF000,$FCFCFFF8,$7FF8FFF8
DC.L $7FF8FFF8,$7FFC7FF8,$7878F078,$7878F078,$78007800,$7878F03C
DC.L $0780003C,$F0F8F000,$FFFCF078,$7878F078,$7878F078,$78000780
DC.L $F03CF03C,$F03CF03C,$F000F000,$F03CF03C,$0780003C,$F1F0F000
DC.L $F7BCF03C,$F03CF03C,$F03CF03C,$F0000780,$F03CF03C,$F03CF03C
DC.L $F000F000,$F03CF03C,$0780003C,$F3E0F000,$F33CF03C,$F03CF03C
DC.L $F03CF03C,$F0000780,$F03CF07C,$F03CF03C,$F000F000,$F000F03C
DC.L $0780003C,$F7C0F000,$F03CF03C,$F03CF078,$F03CF078,$78000780
DC.L $FFFCFFF8,$F800F83C,$FFC0FFC0,$F8FCFFFC,$0F80007C,$FFE0F800
DC.L $F83CF83C,$F83CFFF8,$F83CFFF8,$7FE00F80,$FFFCFFF8,$FC00FC3C
DC.L $FFC0FFC0,$FCFCFFFC,$1F8000FC,$FFE0FC00,$FC3CFC3C,$FC3CFFE0
DC.L $FC3CFFF0,$1FF81F80,$FC3CFC3C,$FC3CFC3C,$FC00FC00,$FC3CFC3C
DC.L $1F80F0FC,$FDF0FC00,$FC3CFC3C,$FC3CFC00,$FC3CFC78,$00781F80
DC.L $FC3CFC3C,$FC7CFC7C,$FC00FC00,$FC7CFC3C,$1F80FCFC,$FDF0FC00
DC.L $FC3CFC3C,$FC7CFC00,$FC7CFC3C,$007C1F80,$FC3CFFFC,$FFFCFFFC
DC.L $FFFCFC00,$FFFCFC3C,$7FF8FFFC,$FCF8FFFC,$FC3CFC3C,$FFFCFC00
DC.L $FFFCFC3C,$FFFC1F80,$FC3CFFF8,$7FF8FFF8,$7FFCFC00,$7FF8FC3C
DC.L $7FF87FF8,$FCF87FFC,$FC3CFC3C,$7FF8FC00,$7FF0FC3C,$FFF81F80
DC.L $FC3CFFF8,$7FF8FFF8,$7FFCFC00,$7FF8FC3C,$7FF87FF8,$FC7C7FFC
DC.L $FC3CFC3C,$7FF8FC00,$7FFCFC3C,$FFF81F80,$FC3CFFE0,$1FE0FFE0
DC.L $1FFCFC00,$1FE0FC3C,$7FF81FE0,$FC7C1FFC,$FC3CFC3C,$1FE0FC00
DC.L $1FCCFC3C,$FFE01F80,$00000000,$00000000,$00000000,$00000000
DC.L $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
DC.L $F03CF03C,$F03CF03C,$7878FFFC,$1FE00180,$1FE0FFE0,$F03CFFFC
DC.L $1FE0FFE0,$1FE00FE0,$00000000,$001007C0,$F03CF03C,$F03CF03C
DC.L $7878FFFC,$7FF80780,$7FF8FFF8,$F03CFFFC,$7FF8FFF8,$7FF87FF8
DC.L $00000000,$003807C0,$F03CF03C,$F03CF87C,$7878003C,$78781F80
DC.L $78780078,$F03CF000,$7878FFF8,$78787878,$00000000,$007C07C0
DC.L $F03CF03C,$F03C7878,$7878003C,$F0FC0780,$F03C003C,$F03CF000
DC.L $F03CFFFC,$F03CF03C,$00000000,$00FE07C0,$F03CF03C,$F03C7CF8
DC.L $7878003C,$F1FC0780,$003C003C,$F03CF000,$F000007C,$F03CF03C
DC.L $00000000,$01FC07C0,$F03CF03C,$F03C3FF0,$7CF80078,$F3BC0780
DC.L $0078007C,$F03CF000,$F800003C,$F87C787C,$3FFC0000,$03F807C0
DC.L $F83CF87C,$F33C1FE0,$3FF01FF8,$FF3C0780,$1FF80FF8,$FFFCFFE0
DC.L $FFE0003C,$7FF87FFC,$3FFC0000,$07F007C0,$FC3C7CF8,$F7BC3FF0
DC.L $3FF07FE0,$FE3C0780,$7FE00FF8,$FFFCFFF8,$FFF8007C,$7FF81FFC
DC.L $3FFC0000,$0FE007C0,$FC3C7FF8,$FFFC7FF8,$1FE07C00,$FC3C0780
DC.L $7C0000FC,$00FC00F8,$F07800FC,$F03C003C,$3FFC0000,$1FC007C0
DC.L $FC7C3FF0,$FFFC7FF8,$0780F800,$FC7C0780,$F80000FC,$00FC007C
DC.L $F07C00FC,$F03CF07C,$00000E00,$3F800000,$FFFC1FE0,$FFFCFCFC
DC.L $0780FFFC,$FFFC7FF8,$FFFCFFFC,$00FCFFFC,$FFFC00FC,$FFFCFFFC
DC.L $00001F00,$7F000380,$7FF80FC0,$FFFCFCFC,$0780FFFC,$7FF87FF8
DC.L $FFFCFFF8,$00FCFFF8,$7FF800FC,$7FF87FF8,$00001F00,$FE0007C0
DC.L $7FF80780,$FCFCF87C,$0780FFFC,$7FF87FF8,$FFFCFFF8,$00FCFFF8
DC.L $7FF800FC,$7FF87FF8,$00001F00,$7C0007C0,$1FE00300,$F87CF87C
DC.L $0780FFFC,$1FE07FF8,$FFFCFFE0,$00FCFFE0,$1FE000FC,$1FE01FE0
DC.L $00000E00,$380007C0,$00000000,$00000000,$00000000,$00000000
DC.L $00000000,$00000000,$00000000,$00000000,$00000000,$10000380
DC.L $1C700700,$00081FE0,$00000000,$0E0003E0,$1F000000,$010003C0
DC.L $1FE00000,$00000000,$00000000,$00000000,$3EF80700,$381C7FF8
DC.L $00000000,$1F0007C0,$0F800000,$010003C0,$7FF80000,$00000000
DC.L $00000000,$00000000,$3EF83FE0,$7C3E7878,$07000700,$1F000F80
DC.L $07C00000,$038003C0,$7FF80000,$00000000,$00000000,$00000000
DC.L $3EF87FF0,$7C7CF83C,$0F800F80,$1F000F80,$07C07FF8,$038003C0
DC.L $FFFC0000,$00000000,$00000000,$00000000,$1E787FF0,$7CF8FC3C
DC.L $0F800F80,$0F001F00,$03E07FF8,$07C003C0,$F07C0000,$00000000
DC.L $00000000,$00000000,$0C307700,$39F0FE3C,$0F800F80,$06001F00
DC.L $03E07FF8,$FFFE7FFE,$00780000,$00000000,$00000000,$00000000
DC.L $18607FE0,$03E07FF8,$07000700,$0C001F00,$03E07FF8,$7FFC7FFE
DC.L $00F80000,$00000000,$00000000,$00000000,$00007FF0,$07C03FF8
DC.L $00000000,$00001F00,$03E00000,$3FF87FFE,$03F00000,$00000000
DC.L $00000000,$00000000,$00003FF0,$0F807BF0,$07000700,$00001F00
DC.L $03E07FF8,$1FF07FFE,$07C00380,$00000000,$00000000,$00000000
DC.L $00000770,$1F38F1F8,$0F800F80,$00001F00,$03E07FF8,$1FF003C0
DC.L $078007C0,$00000000,$00000000,$00000000,$00007FF0,$3E7CFFFC
DC.L $0F800F80,$00001F00,$03E07FF8,$3FF803C0,$000007C0,$00000000
DC.L $00000000,$00000000,$00007FF0,$7C7C7FFE,$0F800F80,$00000F80
DC.L $07C07FF8,$3C7803C0,$030007C0,$00000000,$00000000,$00000000
DC.L $00003FE0,$F87C7FFC,$07000780,$00000F80,$07C00000,$701C03C0
DC.L $078003C0,$00000000,$00000000,$00000000,$00000700,$70381FE8
DC.L $00000300,$000007C0,$0F800000,$400403C0,$07800180,$00000000
DC.L $00000000,$00000000,$00000700,$20000000,$00000600,$000003E0
DC.L $1F000000,$00000000,$03000300,$00000000,$00000000,$00000000
DC.L $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
DC.L $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
DC.L $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
DC.L $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Plane1: ;BLK.B 1000,00
blk.b 10240,0
Plane3: ;BLK.B 5000,00
blk.b 10240,0